{% extends 'layout/basic.html' %}
{% load static %}

{% block title %} 用户短信登录 {% endblock %}


{% block css %}
    <link rel="stylesheet" href="{% static 'css/account.css' %}">
    <style>
        .error-msg {
            color: red;
            position: absolute;
            font-size: 5px;
        }

        .red_input {
            border: 1px solid red;
        }

        .green_input {
            border: 1px solid green;
        }
    </style>
{% endblock %}


{% block content %}
    <div class="account">
        <div class="title">短信登录</div>
        <form id="smsForm" method="POST" novalidate>
            {% csrf_token %}
            {% for field in form %}
                {% if field.name == 'code' %}
                    <div class="form-group">
                        <label for="{{ field.id_for_label }}">{{ field.label }}</label>
                        <div class="row">
                            <div class="col-xs-7">
                                {{ field }}
                                <span class="error-msg"></span>
                            </div>
                            <div class="col-xs-5">
                                <input id="btnSms" type="button" class="btn btn-default" value="点击获取验证码">
                            </div>
                        </div>
                    </div>
                {% else %}
                    <div class="form-group">
                        <label for="{{ field.id_for_label }}">{{ field.label }}</label>
                        {{ field }}
                        <span class="error-msg"></span>
                    </div>
                {% endif %}
            {% endfor %}

            <div>
                <div style="float: right">
                    <a href="{% url 'login' %}">账号密码登录？</a>
                </div>
            </div>

            <div class="row">
                <div class="col-xs-3">
                    <input id="btnLogin" type="button" class="btn btn-success" value="登  录"/>
                </div>
            </div>
        </form>
    </div>
{% endblock %}


{% block js %}

    <script>
        $(function () {
            clickBtnSms();
            clickBtnSubmit();
        });

        // 登录发送
        function clickBtnSubmit() {
            $('#btnLogin').click(function () {
                // 发送 regForm serializer 帮你整体提交form里面的数据+csrf(自己在form中加的，也会获取到) 认证，用Ajax，
                // <QueryDict: {'csrfmiddlewaretoken': ['ttFsFW7IaPPOxOfEoDT4odRd0OS81F3TYrCQdkZ9hTRsQaNbPeDOkmHFIBWA8GPP'],
                // 'username': [''], 'password': [''], 're_password': [''],
                // 'email': [''], 'mobile_phone': [''], 'code': ['']}>

                $.ajax({
                    url: "{% url 'login_sms' %}",
                    type: "POST",
                    data: $('#smsForm').serialize(),
                    dataType: "JSON",
                    success: function (res) {
                        if (res.status === 1) {
                            location.href = '{% url 'home' %}'
                        } else {
                            // 错误信息渲染 {mobile_phone: ['手机号格式错误！']}
                            // 错误时当前input框变红
                            $.each(res.msg, function (key, value) {
                                $('#id_' + key).addClass('red_input').next().text(value[0])
                                // attr 只有添加的一个属性 其他的全部消失 addClass 在原有的基础上添加类
                            })
                        }
                    }
                })
                // 获取焦点 input红框消失 this： 当前操作的对象
                $('input').focus(function () {
                    $(this).removeClass('red_input').next().empty()
                })
            })
        }

        // 验证码发送
        function clickBtnSms() {
            $('#btnSms').click(function () {
                {#$('.error-msg').empty();#}

                $.ajax(
                    {
                        url: "{% url 'send_sms' %}",
                        type: "GET",
                        data: {mobile_phone: $('#id_mobile_phone').val(), tpl: 'login'},
                        dataType: "JSON",// 服务端返回的数据自动反序列化成字典，ajax自动帮你转化了，如果是JsonResponse的话，但是加上保险
                        success: function (res) {
                            if (res.status === 1) {
                                console.log(res)
                                // 定时器效果
                                smsWait();
                            } else {
                                // 错误信息渲染 {mobile_phone: ['手机号格式错误！']}
                                // 错误时当前input框变红
                                $.each(res.msg, function (key, value) {
                                    $('#id_' + key).addClass('red_input').next().text(value[0])
                                    // attr 只有添加的一个属性 其他的全部消失 addClass 在原有的基础上添加类
                                })


                            }
                        }
                    }
                )
                // 获取焦点 input红框消失 this： 当前操作的对象
                $('input').focus(function () {
                    $(this).removeClass('red_input').next().empty()
                })


            })
        }

        // 计时器
        function smsWait() {

            // 获取button按钮
            var $smsBtn = $('#btnSms');
            // 给框加禁止使用的属性
            $smsBtn.prop('disabled', true);
            // time = 60
            var time = 60;
            // 函数
            var remind = setInterval(function () {
                // 给button按钮添加文本
                $smsBtn.val('请等待' + time + '后,重新发送');
                // 自减
                time = time - 1;
                // 当time<1,停止函数，恢复按钮
                if (time < 1) {
                    // 清除函数
                    clearInterval(remind)
                    $smsBtn.val('点击获取验证码').prop('disabled', false);
                }
            }, 1000)
        }

    </script>
{% endblock %}


